iT邦幫忙

0

Day 21 | Java 檔案寫入與讀取:FileWriter 與 Scanner 基礎

  • 分享至 

  • xImage
  •  

在前面學完了隨機數與例外處理之後,這篇要來學習Java中的檔案讀寫(File I/O)基礎,學會如何把資料寫入文字檔中,以及如何從文字檔中把資料讀取出來。


  • 為什麼需要檔案讀寫?
  1. 程式在執行時,所有的變數、陣列或 ArrayList 資料都存在記憶體(RAM)中,一旦程式關閉,資料就會全部消失。
  2. 透過檔案讀寫,我們能將重要的資料(例如遊戲最高得分、使用者設定)持久化地儲存在硬碟的文字檔中。
  • 檔案寫入:使用 FileWriter
  1. 要將文字寫入檔案中,Java提供了FileWriter類別。因為檔案操作可能遇到路徑錯誤或權限問題,所以通常需要搭配try-catch或在方法上宣告例外。
  2. 必備的套件匯入
import java.io.FileWriter;
import java.io.IOException;
  1. 寫入範例程式碼
public class FileWriterDemo {
    public static void main(String[] args) {
        try {
            // 建立 FileWriter 物件,參數為檔名
            // 注意:如果檔案不存在,Java 會自動幫你建立;如果檔案已存在,預會直接覆蓋過去
            FileWriter writer = new FileWriter("score.txt");
            
            // 寫入文字內容
            writer.write("Hello Java File I/O!\n");
            writer.write("High Score: 9999\n");
            
            // 關閉串流 (非常重要!確保資料確實寫入並釋放系統資源)
            writer.close();
            
            System.out.println("檔案寫入成功!");
        } catch (IOException e) {
            System.out.println("寫入檔案時發生錯誤:" + e.getMessage());
        }
    }
}
  • 檔案讀取:使用 Scanner 與 File
  1. 要把文字檔裡的內容讀回來,除了可以用我們之前學過的 Scanner 搭配 File 物件來逐行掃描,非常直覺好上手。
    (1.)必備的套件匯入
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

(2.)讀取範例程式碼

public class FileReaderDemo {
    public static void main(String[] args) {
        try {
            // 指定要讀取的檔案
            File file = new File("score.txt");
            
            // 用 Scanner 讀取該檔案
            Scanner scanner = new Scanner(file);
            
            // 使用迴圈逐行讀取檔案內容
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println("讀取到的內容:" + line);
            }
            
            // 關閉 Scanner
            scanner.close();
            
        } catch (FileNotFoundException e) {
            System.out.println("找不到指定的檔案:" + e.getMessage());
        }
    }
}
  • 核心注意事項
  1. 例外處理:檔案 I/O 操作極度依賴 try-catch(或拋出例外),因為隨時可能遇到找不到檔案、硬碟滿了或無法寫入的問題。
  2. 資源關閉:不管是 FileWriter 還是 Scanner,使用完畢後務必呼叫 .close(),否則可能會造成檔案被系統鎖定或記憶體洩漏。
  • 參考教學影片:https://youtu.be/cVQGTr5y4is?si=6hDXOK6SVJOdiSUi

*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言